# Limitations and considerations

You should be aware of the following limitations and considerations when using Google Cloud SQL for PostgreSQL as a source:

* The database name cannot include a semi-colon (;).

* Capturing changes while the database is in Hot Standby mode is not supported.

* Replication of multiple tables with the same name but a different case (e.g. `table1`, `TABLE1` and `Table1`) may cause unpredictable behavior and is therefore not supported.

* The PostgreSQL read replica (in a High Availability environment) is supported from PostgreSQL 16 only.

* Change processing of TRUNCATE operations is not supported.

* Deferred Constraints are not supported.

* Unique Indexes with CASE expressions are not supported.

* REPLICA IDENTITY support:

  * If FULL is used, before-image values will be replicated for all table columns. Only when using this mode is it possible to redefine the target index.

  * If DEFAULT is used, replication is supported only when a table contains a Primary key. Additionally, only before-images of Primary Key columns will be replicated.

  * USING INDEX is supported only when the specified Unique Index is the only unique constraint for the table (meaning that the table does not have a Primary Key or another Unique Index). In this case, it is supported exactly the same as the DEFAULT value described above.

  * As Replicate does not verify the REPLICA IDENTITY value, make sure you define the correct value.

* The “Start Process Changes from Timestamp” run option is not supported.

* Change processing of [CREATE | ALTER | DROP] table DDLs are supported unless they are held in an inner function/procedure body block or in other nested constructs.

  For example, the following change will not be captured:

  `CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void`

  `LANGUAGE plpgsql`

  `AS $$`

  `BEGIN`

  `       create table attu.distributors1(did    serial PRIMARY KEY,name   varchar(40) NOT NULL); `

  `END;`

  `$$;`

* When Support partitioned tables in CDC is enabled in the Advanced tab, the following DDLs are not supported:

  * Drop partition
  * Detach partition
  * Attach partition - with data

* An UPDATE operation that involves two partitions (moving a record between partitions) will be applied to the target using DELETE and INSERT operations.

* When using the [Parallel Load](https://help.qlik.com/en-US/replicate/November2024/Content/Global_Common/Content/SharedEMReplicate/Customize%20Tasks/Parallel_Load.htm) feature, table segmentation according to partitions or sub-partitions is not supported.

* When using [filters](https://help.qlik.com/en-US/replicate/November2024/Content/Global_Common/Content/SharedEMReplicate/Customize%20Tasks/tasks_filters.htm) that do not contain a Primary Key, DELETE operations will not be captured.

* When capturing changes to source tables, a RENAME TABLE operation will be captured only if it is preceded by a DML operation.

* PostGIS data types are not supported.

* Forced failover is a feature of Azure Database for PostgreSQL – Flexible Server. If forced failover occurs when replicating data from Azure Database for PostgreSQL – Flexible Server, the task will stop and will need to be reloaded.

* The SQL MERGE command introduced in PostgreSQL 15.x has not been certified.

* The AR\_H\_USER header column is not supported.

## Unsupported data types

Information noteThe PostGIS data type is not supported.